<html>
<head>
	<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
	<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
	<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {
    $("a.toggle").toggle(function(){
        $(this).text($(this).text().replace(/隐藏/,'显示'));
        var a=$(this).parents(".summary");
        a.find(".inherited").hide();
    },function(){
        $(this).text($(this).text().replace(/显示/,'隐藏'));
        $(this).parents(".summary").find(".inherited").show();
    });
});
</script>


   <!-- 左侧栏 -->
	<div class="container">
	<div class="row">
    <div id="subpage_sidebar" class="left apidoc-classes-index span3">

      

<h3>包 core</h3>

<ul>
    <li>
    <a href="./class-q.html" title="Q">Q</a>
  </li>
    <li>
    <a href="./class-qexception.html" title="QException">QException</a>
  </li>
    <li>
    <a href="./class-qcoll.html" title="QColl">QColl</a>
  </li>
    <li>
    <a href="./class-qcontext.html" title="QContext">QContext</a>
  </li>
    <li>
    <a href="./class-qlog.html" title="QLog">QLog</a>
  </li>
  
</ul>


<h3>包 mvc</h3>

<ul>
    <li>
    <a href="./class-qacl.html" title="QACL">QACL</a>
  </li>
    <li>
    <a href="./class-qcontroller-abstract.html" title="QController_Abstract">QController_Abstract</a>
  </li>
    <li>
    <a href="./class-qcontroller-forward.html" title="QController_Forward">QController_Forward</a>
  </li>
    <li>
    <a href="./class-qrouter.html" title="QRouter">QRouter</a>
  </li>
    <li>
    <a href="./class-qview-output.html" title="QView_Output">QView_Output</a>
  </li>
    <li>
    <a href="./class-qview-redirect.html" title="QView_Redirect">QView_Redirect</a>
  </li>
    <li>
    <a href="./class-qview-render-php.html" title="QView_Render_PHP">QView_Render_PHP</a>
  </li>
    <li>
    <a href="./class-qview-render-php-parser.html" title="QView_Render_PHP_Parser">QView_Render_PHP_Parser</a>
  </li>
  
</ul>


<h3>包 orm</h3>

<ul>
    <li>
    <a href="./class-qdb-activerecord-behavior-abstract.html" title="QDB_ActiveRecord_Behavior_Abstract">QDB_ActiveRecord_Behavior_Abst...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-abstract.html" title="QDB_ActiveRecord_Abstract">QDB_ActiveRecord_Abstract</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-association-abstract.html" title="QDB_ActiveRecord_Association_Abstract">QDB_ActiveRecord_Association_A...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-association-belongsto.html" title="QDB_ActiveRecord_Association_BelongsTo">QDB_ActiveRecord_Association_B...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-association-coll.html" title="QDB_ActiveRecord_Association_Coll">QDB_ActiveRecord_Association_C...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-association-hasmany.html" title="QDB_ActiveRecord_Association_HasMany">QDB_ActiveRecord_Association_H...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-association-hasone.html" title="QDB_ActiveRecord_Association_HasOne">QDB_ActiveRecord_Association_H...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-association-manytomany.html" title="QDB_ActiveRecord_Association_ManyToMany">QDB_ActiveRecord_Association_M...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-meta.html" title="QDB_ActiveRecord_Meta">QDB_ActiveRecord_Meta</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-view.html" title="QDB_ActiveRecord_View">QDB_ActiveRecord_View</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-viewmeta.html" title="QDB_ActiveRecord_ViewMeta">QDB_ActiveRecord_ViewMeta</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-callbacks.html" title="QDB_ActiveRecord_Callbacks">QDB_ActiveRecord_Callbacks</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-interface.html" title="QDB_ActiveRecord_Interface">QDB_ActiveRecord_Interface</a>
  </li>
  
</ul>


<h3>包 form</h3>

<ul>
    <li>
    <a href="./class-qform-element.html" title="QForm_Element">QForm_Element</a>
  </li>
    <li>
    <a href="./class-qform-group.html" title="QForm_Group">QForm_Group</a>
  </li>
    <li>
    <a href="./class-qform.html" title="QForm">QForm</a>
  </li>
  
</ul>


<h3>包 database</h3>

<ul>
    <li>
    <a href="./class-qdb-adapter-abstract.html" title="QDB_Adapter_Abstract">QDB_Adapter_Abstract</a>
  </li>
    <li>
    <a href="./class-qdb-adapter-mysql.html" title="QDB_Adapter_Mysql">QDB_Adapter_Mysql</a>
  </li>
    <li>
    <a href="./class-qdb-adapter-pdo-abstract.html" title="QDB_Adapter_Pdo_Abstract">QDB_Adapter_Pdo_Abstract</a>
  </li>
    <li>
    <a href="./class-qdb-adapter-pdo-exception.html" title="QDB_Adapter_Pdo_Exception">QDB_Adapter_Pdo_Exception</a>
  </li>
    <li>
    <a href="./class-qdb-adapter-pdo-pgsql.html" title="QDB_Adapter_Pdo_Pgsql">QDB_Adapter_Pdo_Pgsql</a>
  </li>
    <li>
    <a href="./class-qdb-adapter-pgsql.html" title="QDB_Adapter_Pgsql">QDB_Adapter_Pgsql</a>
  </li>
    <li>
    <a href="./class-qdb-cond.html" title="QDB_Cond">QDB_Cond</a>
  </li>
    <li>
    <a href="./class-qdb.html" title="QDB">QDB</a>
  </li>
    <li>
    <a href="./class-qdb-expr.html" title="QDB_Expr">QDB_Expr</a>
  </li>
    <li>
    <a href="./class-qdb-result-abstract.html" title="QDB_Result_Abstract">QDB_Result_Abstract</a>
  </li>
    <li>
    <a href="./class-qdb-result-mysql.html" title="QDB_Result_Mysql">QDB_Result_Mysql</a>
  </li>
    <li>
    <a href="./class-qdb-result-pdo.html" title="QDB_Result_Pdo">QDB_Result_Pdo</a>
  </li>
    <li>
    <a href="./class-qdb-result-pgsql.html" title="QDB_Result_Pgsql">QDB_Result_Pgsql</a>
  </li>
    <li>
    <a href="./class-qdb-select.html" title="QDB_Select">QDB_Select</a>
  </li>
    <li>
    <a href="./class-qdb-table.html" title="QDB_Table">QDB_Table</a>
  </li>
    <li>
    <a href="./class-qdb-table-lite.html" title="QDB_Table_Lite">QDB_Table_Lite</a>
  </li>
  
</ul>


<h3>包 helper</h3>

<ul>
    <li>
    <a href="./class-helper-filesys.html" title="Helper_Filesys">Helper_Filesys</a>
  </li>
    <li>
    <a href="./class-helper-array.html" title="Helper_Array">Helper_Array</a>
  </li>
    <li>
    <a href="./class-qdom-document.html" title="QDom_Document">QDom_Document</a>
  </li>
    <li>
    <a href="./class-qdom-element.html" title="QDom_Element">QDom_Element</a>
  </li>
    <li>
    <a href="./class-qfilter.html" title="QFilter">QFilter</a>
  </li>
    <li>
    <a href="./class-helper-image.html" title="Helper_Image">Helper_Image</a>
  </li>
    <li>
    <a href="./class-helper-imagegd.html" title="Helper_ImageGD">Helper_ImageGD</a>
  </li>
    <li>
    <a href="./class-helper-imgcode.html" title="Helper_ImgCode">Helper_ImgCode</a>
  </li>
    <li>
    <a href="./class-helper-imgcodesimple.html" title="Helper_ImgCodeSimple">Helper_ImgCodeSimple</a>
  </li>
    <li>
    <a href="./class-helper-imgcodettf.html" title="Helper_ImgCodeTTF">Helper_ImgCodeTTF</a>
  </li>
    <li>
    <a href="./class-helper-uploader.html" title="Helper_Uploader">Helper_Uploader</a>
  </li>
    <li>
    <a href="./class-helper-uploader-file.html" title="Helper_Uploader_File">Helper_Uploader_File</a>
  </li>
    <li>
    <a href="./class-qvalidator.html" title="QValidator">QValidator</a>
  </li>
    <li>
    <a href="./class-helper-yaml.html" title="Helper_YAML">Helper_YAML</a>
  </li>
  
</ul>


<h3>包 cache</h3>

<ul>
    <li>
    <a href="./class-qcache-apc.html" title="QCache_APC">QCache_APC</a>
  </li>
    <li>
    <a href="./class-qcache-file.html" title="QCache_File">QCache_File</a>
  </li>
    <li>
    <a href="./class-qcache-memcached.html" title="QCache_Memcached">QCache_Memcached</a>
  </li>
    <li>
    <a href="./class-qcache-memory.html" title="QCache_Memory">QCache_Memory</a>
  </li>
    <li>
    <a href="./class-qcache-phpdatafile.html" title="QCache_PHPDataFile">QCache_PHPDataFile</a>
  </li>
    <li>
    <a href="./class-qcache-xcache.html" title="QCache_XCache">QCache_XCache</a>
  </li>
  
</ul>


<h3>包 webcontrols</h3>

<ul>
    <li>
    <a href="./class-qui-control-abstract.html" title="QUI_Control_Abstract">QUI_Control_Abstract</a>
  </li>
    <li>
    <a href="./class-control-input-abstract.html" title="Control_Input_Abstract">Control_Input_Abstract</a>
  </li>
    <li>
    <a href="./class-control-button.html" title="Control_Button">Control_Button</a>
  </li>
    <li>
    <a href="./class-control-checkbox-abstract.html" title="Control_Checkbox_Abstract">Control_Checkbox_Abstract</a>
  </li>
    <li>
    <a href="./class-control-checkbox.html" title="Control_Checkbox">Control_Checkbox</a>
  </li>
    <li>
    <a href="./class-control-checkboxgroup-abstract.html" title="Control_CheckboxGroup_Abstract">Control_CheckboxGroup_Abstract</a>
  </li>
    <li>
    <a href="./class-control-checkboxgroup.html" title="Control_CheckboxGroup">Control_CheckboxGroup</a>
  </li>
    <li>
    <a href="./class-control-dropdownlist.html" title="Control_DropdownList">Control_DropdownList</a>
  </li>
    <li>
    <a href="./class-control-hidden.html" title="Control_Hidden">Control_Hidden</a>
  </li>
    <li>
    <a href="./class-control-label.html" title="Control_Label">Control_Label</a>
  </li>
    <li>
    <a href="./class-control-listbox.html" title="Control_Listbox">Control_Listbox</a>
  </li>
    <li>
    <a href="./class-control-memo.html" title="Control_Memo">Control_Memo</a>
  </li>
    <li>
    <a href="./class-control-password.html" title="Control_Password">Control_Password</a>
  </li>
    <li>
    <a href="./class-control-radio.html" title="Control_Radio">Control_Radio</a>
  </li>
    <li>
    <a href="./class-control-radiogroup.html" title="Control_RadioGroup">Control_RadioGroup</a>
  </li>
    <li>
    <a href="./class-control-reset.html" title="Control_Reset">Control_Reset</a>
  </li>
    <li>
    <a href="./class-control-static.html" title="Control_Static">Control_Static</a>
  </li>
    <li>
    <a href="./class-control-submit.html" title="Control_Submit">Control_Submit</a>
  </li>
    <li>
    <a href="./class-control-textbox.html" title="Control_Textbox">Control_Textbox</a>
  </li>
    <li>
    <a href="./class-control-upload.html" title="Control_Upload">Control_Upload</a>
  </li>
  
</ul>


<h3>包 behavior</h3>

<ul>
    <li>
    <a href="./class-model-behavior-acluser.html" title="Model_Behavior_AclUser">Model_Behavior_AclUser</a>
  </li>
    <li>
    <a href="./class-model-behavior-fastuuid.html" title="Model_Behavior_Fastuuid">Model_Behavior_Fastuuid</a>
  </li>
    <li>
    <a href="./class-model-behavior-relation.html" title="Model_Behavior_Relation">Model_Behavior_Relation</a>
  </li>
    <li>
    <a href="./class-model-behavior-uniqueness.html" title="Model_Behavior_Uniqueness">Model_Behavior_Uniqueness</a>
  </li>
  
</ul>


<h3>包 exception</h3>

<ul>
    <li>
    <a href="./class-qcache-exception.html" title="QCache_Exception">QCache_Exception</a>
  </li>
    <li>
    <a href="./class-q-classfileexistsexception.html" title="Q_ClassFileExistsException">Q_ClassFileExistsException</a>
  </li>
    <li>
    <a href="./class-q-classnotdefinedexception.html" title="Q_ClassNotDefinedException">Q_ClassNotDefinedException</a>
  </li>
    <li>
    <a href="./class-q-createdirfailedexception.html" title="Q_CreateDirFailedException">Q_CreateDirFailedException</a>
  </li>
    <li>
    <a href="./class-q-createfilefailedexception.html" title="Q_CreateFileFailedException">Q_CreateFileFailedException</a>
  </li>
    <li>
    <a href="./class-q-filenotfoundexception.html" title="Q_FileNotFoundException">Q_FileNotFoundException</a>
  </li>
    <li>
    <a href="./class-q-filenotreadableexception.html" title="Q_FileNotReadableException">Q_FileNotReadableException</a>
  </li>
    <li>
    <a href="./class-q-illegalclassnameexception.html" title="Q_IllegalClassNameException">Q_IllegalClassNameException</a>
  </li>
    <li>
    <a href="./class-q-illegalfilenameexception.html" title="Q_IllegalFilenameException">Q_IllegalFilenameException</a>
  </li>
    <li>
    <a href="./class-qlog-exception.html" title="QLog_Exception">QLog_Exception</a>
  </li>
    <li>
    <a href="./class-q-notimplementedexception.html" title="Q_NotImplementedException">Q_NotImplementedException</a>
  </li>
    <li>
    <a href="./class-q-removedirfailedexception.html" title="Q_RemoveDirFailedException">Q_RemoveDirFailedException</a>
  </li>
    <li>
    <a href="./class-qdb-exception.html" title="QDB_Exception">QDB_Exception</a>
  </li>
    <li>
    <a href="./class-qdb-exception-duplicatekey.html" title="QDB_Exception_DuplicateKey">QDB_Exception_DuplicateKey</a>
  </li>
    <li>
    <a href="./class-qdb-select-exception.html" title="QDB_Select_Exception">QDB_Select_Exception</a>
  </li>
    <li>
    <a href="./class-qdb-table-exception.html" title="QDB_Table_Exception">QDB_Table_Exception</a>
  </li>
    <li>
    <a href="./class-acluser-exception.html" title="AclUser_Exception">AclUser_Exception</a>
  </li>
    <li>
    <a href="./class-acluser-duplicateusernameexception.html" title="AclUser_DuplicateUsernameException">AclUser_DuplicateUsernameExcep...</a>
  </li>
    <li>
    <a href="./class-acluser-usernamenotfoundexception.html" title="AclUser_UsernameNotFoundException">AclUser_UsernameNotFoundExcept...</a>
  </li>
    <li>
    <a href="./class-acluser-wrongpasswordexception.html" title="AclUser_WrongPasswordException">AclUser_WrongPasswordException</a>
  </li>
    <li>
    <a href="./class-qform-exception.html" title="QForm_Exception">QForm_Exception</a>
  </li>
    <li>
    <a href="./class-qdom-exception.html" title="QDom_Exception">QDom_Exception</a>
  </li>
    <li>
    <a href="./class-qvalidator-exception.html" title="QValidator_Exception">QValidator_Exception</a>
  </li>
    <li>
    <a href="./class-qvalidator-validatefailedexception.html" title="QValidator_ValidateFailedException">QValidator_ValidateFailedExcep...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-association-exception.html" title="QDB_ActiveRecord_Association_Exception">QDB_ActiveRecord_Association_E...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-association-notdefinedexception.html" title="QDB_ActiveRecord_Association_NotDefinedException">QDB_ActiveRecord_Association_N...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-association-rejectexception.html" title="QDB_ActiveRecord_Association_RejectException">QDB_ActiveRecord_Association_R...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-behavior-exception.html" title="QDB_ActiveRecord_Behavior_Exception">QDB_ActiveRecord_Behavior_Exce...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-exception.html" title="QDB_ActiveRecord_Exception">QDB_ActiveRecord_Exception</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-calltoundefinedmethodexception.html" title="QDB_ActiveRecord_CallToUndefinedMethodException">QDB_ActiveRecord_CallToUndefin...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-changingreadonlypropexception.html" title="QDB_ActiveRecord_ChangingReadonlyPropException">QDB_ActiveRecord_ChangingReado...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-compositepkincompatibleexception.html" title="QDB_ActiveRecord_CompositePKIncompatibleException">QDB_ActiveRecord_CompositePKIn...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-destroywithoutidexception.html" title="QDB_ActiveRecord_DestroyWithoutIdException">QDB_ActiveRecord_DestroyWithou...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-expectsassocpropexception.html" title="QDB_ActiveRecord_ExpectsAssocPropException">QDB_ActiveRecord_ExpectsAssocP...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-meta-exception.html" title="QDB_ActiveRecord_Meta_Exception">QDB_ActiveRecord_Meta_Exceptio...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-settingproptypemismatchexception.html" title="QDB_ActiveRecord_SettingPropTypeMismatchException">QDB_ActiveRecord_SettingPropTy...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-undefinedpropexception.html" title="QDB_ActiveRecord_UndefinedPropException">QDB_ActiveRecord_UndefinedProp...</a>
  </li>
    <li>
    <a href="./class-qdb-activerecord-validatefailedexception.html" title="QDB_ActiveRecord_ValidateFailedException">QDB_ActiveRecord_ValidateFaile...</a>
  </li>
    <li>
    <a href="./class-qacl-exception.html" title="QACL_Exception">QACL_Exception</a>
  </li>
    <li>
    <a href="./class-qrouter-exception.html" title="QRouter_Exception">QRouter_Exception</a>
  </li>
    <li>
    <a href="./class-qrouter-invalidrouteexception.html" title="QRouter_InvalidRouteException">QRouter_InvalidRouteException</a>
  </li>
    <li>
    <a href="./class-qrouter-routenotfoundexception.html" title="QRouter_RouteNotFoundException">QRouter_RouteNotFoundException</a>
  </li>
    <li>
    <a href="./class-qview-exception.html" title="QView_Exception">QView_Exception</a>
  </li>
    <li>
    <a href="./class-qui-exception.html" title="QUI_Exception">QUI_Exception</a>
  </li>
  
</ul>


<h3>包 debug</h3>

<ul>
    <li>
    <a href="./class-qdebug.html" title="QDebug">QDebug</a>
  </li>
    <li>
    <a href="./class-qdebug-firephp.html" title="QDebug_FirePHP">QDebug_FirePHP</a>
  </li>
  
</ul>



    </div>

    <!-- /左侧栏 -->

    <!-- 右侧栏 -->

    <div id="col3" class="right contents span9">

      
<div class="apidoc-class">

  <h1>类 - QForm</h1>

  <ul class="nav nav-tabs">
    <li class="active"><a href="./index.html">所有包</a></li>

        <li><a href="#properties">类属性</a></li>
    
        <li><a href="#methods">类方法</a></li>
    

  </ul>

  
<table class="summary-table table table-bordered" cellpadding="0" cellspacing="0" >
  <tr>
    <th nowrap="nowrap">包</th>
    <td>form</td>
  </tr>
  <tr>
    <th nowrap="nowrap">类层次</th>
    <td>
    QForm
&raquo;
<a href="./class-qform-group.html">QForm_Group</a>
&raquo;
<a href="./class-qform-element.html">QForm_Element</a>
    </td>
  </tr>

    <tr>
    <th nowrap="nowrap">实现的接口</th>
    <td></td>
  </tr>
  
  
    <tr>
    <th nowrap="nowrap">版本</th>
    <td>$Id: form.php 2401 2009-04-07 03:50:08Z dualface $</td>
  </tr>
  
</table>

<div class="formatted">
  
<p>类 QForm 封装了表单的数据和行为</p>

<p>有关 QForm
类的详细使用，请参考开发者手册的相关章节。</p>
</div>


  <a name="properties"></a>

  
<div class="summary">

  <h2>保护的属性</h2>
  <p>
    <a href="#" class="toggle">隐藏继承的属性</a>
  </p>

  <table class="list-table table table-bordered">
    <tr>
      <th>属性</th><th>类型</th><th>描述</th><th>定义于</th>
    </tr>

    
    <tr class="inherited">
      <td>$_elements</td>
      <td>QColl</td>
      <td>聚合的元素</td>
      <td>
      	<small>
                <a href="./class-qform-group.html">QForm_Group</a>
        		</small>
      </td>
    </tr>
    
    <tr class="inherited">
      <td>$_attrs</td>
      <td>array</td>
      <td>属性值</td>
      <td>
      	<small>
                <a href="./class-qform-element.html">QForm_Element</a>
        		</small>
      </td>
    </tr>
    
    <tr class="inherited">
      <td>$_owner</td>
      <td>QForm_Group</td>
      <td>该元素的所有者</td>
      <td>
      	<small>
                <a href="./class-qform-element.html">QForm_Element</a>
        		</small>
      </td>
    </tr>
    
    <tr class="inherited">
      <td>$_unfiltered_value</td>
      <td>mixed</td>
      <td>未过滤的值</td>
      <td>
      	<small>
                <a href="./class-qform-element.html">QForm_Element</a>
        		</small>
      </td>
    </tr>
    
    <tr class="inherited">
      <td>$_filters</td>
      <td>array</td>
      <td>过滤器链</td>
      <td>
      	<small>
                <a href="./class-qform-element.html">QForm_Element</a>
        		</small>
      </td>
    </tr>
    
    <tr class="inherited">
      <td>$_validations</td>
      <td>array</td>
      <td>验证规则</td>
      <td>
      	<small>
                <a href="./class-qform-element.html">QForm_Element</a>
        		</small>
      </td>
    </tr>
    
    <tr class="inherited">
      <td>$_is_valid</td>
      <td>boolean</td>
      <td>数据的验证结果</td>
      <td>
      	<small>
                <a href="./class-qform-element.html">QForm_Element</a>
        		</small>
      </td>
    </tr>
    
    <tr class="inherited">
      <td>$_error_msg</td>
      <td>string</td>
      <td>验证失败的信息</td>
      <td>
      	<small>
                <a href="./class-qform-element.html">QForm_Element</a>
        		</small>
      </td>
    </tr>
    
    <tr class="inherited">
      <td>$_locked</td>
      <td>boolean</td>
      <td>元素是否锁定，锁定元素不接受 import 和validate 赋值</td>
      <td>
      	<small>
                <a href="./class-qform-element.html">QForm_Element</a>
        		</small>
      </td>
    </tr>
    
  </table>
</div>



  <a name="methods"></a>
  
<div class="summary">
  <h2>公共方法</h2>
  <p>
    <a href="#" class="toggle">隐藏继承的方法</a>
  </p>

  <table class="list-table table table-bordered">
    <tr>
      <th>方法</th><th>描述</th><th>定义于</th>
    </tr>

        <tr>
      <td>
        <a href="#QForm___construct">__construct()</a>
      </td>

      <td>构造函数</td>
      <td>
                QForm        
      </td>
    </tr>
        <tr>
      <td>
        <a href="#QForm_loadFromConfig">loadFromConfig()</a>
      </td>

      <td>从配置载入表单设置和元素</td>
      <td>
                QForm        
      </td>
    </tr>
        <tr>
      <td>
        <a href="#QForm_loadFromConfigFile">loadFromConfigFile()</a>
      </td>

      <td>从一个 YAML 文件载入表单设置和元素</td>
      <td>
                QForm        
      </td>
    </tr>
        <tr>
      <td>
        <a href="#QForm_validate">validate()</a>
      </td>

      <td>导入数据并验证，返回验证结果</td>
      <td>
                QForm        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_changeNestedName">changeNestedName()</a>
      </td>

      <td>设置嵌套名</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_add">add()</a>
      </td>

      <td>添加一个元素，并返回该元素对象</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_remove">remove()</a>
      </td>

      <td>从群组中删除指定的元素</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_addValidations">addValidations()</a>
      </td>

      <td>为群组的元素添加验证规则</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_cleanValidations">cleanValidations()</a>
      </td>

      <td>清除该组所有元素的验证规则</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_element">element()</a>
      </td>

      <td>返回指定 ID 的子元素</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_existsElement">existsElement()</a>
      </td>

      <td>检查指定的元素是否存在</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_elements">elements()</a>
      </td>

      <td>返回包含所有元素的集合</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_isGroup">isGroup()</a>
      </td>

      <td>指示当前元素是一个组</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_import">import()</a>
      </td>

      <td>导入数据，但不进行过滤和验证</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_isValid">isValid()</a>
      </td>

      <td>确认群组所有元素的有效性</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_invalidate">invalidate()</a>
      </td>

      <td>指示群组的数据为无效状态</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_values">values()</a>
      </td>

      <td>返回包含群组所有元素值的数组</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_value">value()</a>
      </td>

      <td>获得表单群组中所有元素的值</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_unfilteredValues">unfilteredValues()</a>
      </td>

      <td>返回包含群组所有元素未过滤值得数组</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group_unfilteredValue">unfilteredValue()</a>
      </td>

      <td>返回包含群组所有元素未过滤值得数组</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_lock">lock()</a>
      </td>

      <td>锁定元素</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_unlock">unlock()</a>
      </td>

      <td>元素解锁</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element___get">__get()</a>
      </td>

      <td>魔法方法，以便通过对象属性直接访问元素的属性值</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element___set">__set()</a>
      </td>

      <td>魔法方法，以便通过指定对象属性的方式来修改元素的属性值</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_get">get()</a>
      </td>

      <td>获得属性值，如果属性不存在返回 $default 参数指定的默认值</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_set">set()</a>
      </td>

      <td>修改属性值</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_dataBinding">dataBinding()</a>
      </td>

      <td>确定数据绑定状态</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_enableDataBinding">enableDataBinding()</a>
      </td>

      <td>修改数据绑定状态</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_nestedName">nestedName()</a>
      </td>

      <td>返回群组的嵌套名</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_owner">owner()</a>
      </td>

      <td>返回元素的所有者</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_attrs">attrs()</a>
      </td>

      <td>返回所有不是以“_”开头的属性的值</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_allAttrs">allAttrs()</a>
      </td>

      <td>返回所有属性的值</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_addFilters">addFilters()</a>
      </td>

      <td>添加过滤器</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-element.html#QForm_Element_errorMsg">errorMsg()</a>
      </td>

      <td>返回验证错误信息</td>
      <td>
                <a href="./class-qform-element.html">QForm_Element</a>
        
      </td>
    </tr>
    
  </table>
</div>



<div class="summary">
  <h2>保护的方法</h2>
  <p>
    <a href="#" class="toggle">隐藏继承的方法</a>
  </p>

  <table class="list-table table table-bordered">
    <tr>
      <th>方法</th><th>描述</th><th>定义于</th>
    </tr>

        <tr>
      <td>
        <a href="#QForm__after_created">_after_created()</a>
      </td>

      <td>表单对象构造后调用的事件方法</td>
      <td>
                QForm        
      </td>
    </tr>
        <tr>
      <td>
        <a href="#QForm__before_validate">_before_validate()</a>
      </td>

      <td>表单对象验证之前调用的事件方法</td>
      <td>
                QForm        
      </td>
    </tr>
        <tr>
      <td>
        <a href="#QForm__after_validate">_after_validate()</a>
      </td>

      <td>表单对象验证之后调用的事件方法</td>
      <td>
                QForm        
      </td>
    </tr>
        <tr>
      <td>
        <a href="#QForm__after_validate_failed">_after_validate_failed()</a>
      </td>

      <td>当表单验证失败时调用的事件方法</td>
      <td>
                QForm        
      </td>
    </tr>
        <tr>
      <td>
        <a href="#QForm__after_validate_successed">_after_validate_successed()</a>
      </td>

      <td>当表单验证成功时调用的事件方法</td>
      <td>
                QForm        
      </td>
    </tr>
        <tr class="inherited">
      <td>
        <a href="./class-qform-group.html#QForm_Group__values">_values()</a>
      </td>

      <td>提取群组所有元素值的数组</td>
      <td>
                <a href="./class-qform-group.html">QForm_Group</a>
        
      </td>
    </tr>
    
  </table>
</div>



<div class="details">

  <h2>方法详细说明</h2>

    
  <a name="QForm___construct"></a>

  <h4 class="name method">
    __construct()
    <span class="tags">方法</span>
  </h4>
	<p>
	public void <strong>__construct</strong>($id, $action, $method, $attrs)	</p>
  <table class="list-table table table-bordered">

        
    <tr>
      <td class="param_name">$id</td>
      <td class="param_type">string</td>
      <td class="param_desc">表单 ID</td>
    </tr>
    
    <tr>
      <td class="param_name">$action</td>
      <td class="param_type">string</td>
      <td class="param_desc">表单提交的目的地 URL</td>
    </tr>
    
    <tr>
      <td class="param_name">$method</td>
      <td class="param_type">string</td>
      <td class="param_desc">表单提交方法</td>
    </tr>
    
    <tr>
      <td class="param_name">$attrs</td>
      <td class="param_type">arary</td>
      <td class="param_desc">附加的属性</td>
    </tr>
    
    <tr>
      <td class="param_name">{return}</td>
      <td class="param_type"></td>
      <td class="param_desc"></td>
    </tr>
    
  </table>

  <div class="formatted">
    
<p>构造函数</p>

<p>表单对象构造后，会调用 _after_created() 方法。 QForm
继承类可以在 _after_created()
方法中做进一步的设置和初始化。</p>
  </div>
	<hr>
    
  <a name="QForm_loadFromConfig"></a>

  <h4 class="name method">
    loadFromConfig()
    <span class="tags">方法</span>
  </h4>
	<p>
	public QForm <strong>loadFromConfig</strong>($config)	</p>
  <table class="list-table table table-bordered">

        
    <tr>
      <td class="param_name">$config</td>
      <td class="param_type">array</td>
      <td class="param_desc">包含表单配置的数组</td>
    </tr>
    
    <tr>
      <td class="param_name">{return}</td>
      <td class="param_type">QForm</td>
      <td class="param_desc">返回表单对象本身，实现连贯接口</td>
    </tr>
    
  </table>

  <div class="formatted">
    
<p>从配置载入表单设置和元素</p>

<pre class="php code"><span class="re0">$form</span> <span
class="sy0">=</span> QForm<span class="br0">&#40;</span><span
class="br0">&#41;</span><span class="sy0">;</span>
<span
class="re0">$config</span> <span class="sy0">=</span> Helper_YAML<span
class="sy0">::</span><span class="me2">loadCached</span><span
class="br0">&#40;</span><span class="st_h">'form_config.yaml'</span><span
class="br0">&#41;</span><span class="sy0">;</span>
<span
class="re0">$form</span><span class="sy0">-&gt;</span><span
class="me1">loadFromConfig</span><span class="br0">&#40;</span><span
class="re0">$config</span><span class="br0">&#41;</span><span
class="sy0">;</span></pre>
  </div>
	<hr>
    
  <a name="QForm_loadFromConfigFile"></a>

  <h4 class="name method">
    loadFromConfigFile()
    <span class="tags">方法</span>
  </h4>
	<p>
	public QForm <strong>loadFromConfigFile</strong>($filename, $cached)	</p>
  <table class="list-table table table-bordered">

        
    <tr>
      <td class="param_name">$filename</td>
      <td class="param_type">string</td>
      <td class="param_desc">要载入的配置文件</td>
    </tr>
    
    <tr>
      <td class="param_name">$cached</td>
      <td class="param_type">bollean</td>
      <td class="param_desc">是否缓存配置文件</td>
    </tr>
    
    <tr>
      <td class="param_name">{return}</td>
      <td class="param_type">QForm</td>
      <td class="param_desc">返回表单对象本身，实现连贯接口</td>
    </tr>
    
  </table>

  <div class="formatted">
    
<p>从一个 YAML 文件载入表单设置和元素</p>
  </div>
	<hr>
    
  <a name="QForm_validate"></a>

  <h4 class="name method">
    validate()
    <span class="tags">方法</span>
  </h4>
	<p>
	public boolean <strong>validate</strong>($data, $failed)	</p>
  <table class="list-table table table-bordered">

        
    <tr>
      <td class="param_name">$data</td>
      <td class="param_type">mixed</td>
      <td class="param_desc">要导入的数据，可以是数组或者实现了 ArrayAccess 接口的对象，例如 QColl</td>
    </tr>
    
    <tr>
      <td class="param_name">$failed</td>
      <td class="param_type">array</td>
      <td class="param_desc">如果需要确定哪些数据没有验证通过，可以提供 $failed 参数。
                     验证结果后该参数将包含所有没有通过验证的表单元素的名字。</td>
    </tr>
    
    <tr>
      <td class="param_name">{return}</td>
      <td class="param_type">boolean</td>
      <td class="param_desc">验证结果</td>
    </tr>
    
  </table>

  <div class="formatted">
    
<p>导入数据并验证，返回验证结果</p>

<p>通过 validate() 方法，数据将被导入表单对象。
并在导入时进行过滤和验证，最后返回验证结果。</p>

<pre class="php code"><span class="kw1">if</span> <span
class="br0">&#40;</span><span class="re0">$form</span><span
class="sy0">-&gt;</span><span class="me1">validate</span><span
class="br0">&#40;</span><span class="re0">$_POST</span><span
class="br0">&#41;</span><span class="br0">&#41;</span>
<span
class="br0">&#123;</span>
    <span class="sy0">...</span> 验证通过
<span
class="br0">&#125;</span></pre>

<p>验证后的数据使用 values() 方法可以取得。
而未过滤的原始数据使用 unfilteredValues() 方法可以取得。</p>
  </div>
	<hr>
    
  <a name="QForm__after_created"></a>

  <h4 class="name method">
    _after_created()
    <span class="tags">方法</span>
  </h4>
	<p>
	protected void <strong>_after_created</strong>()	</p>
  <table class="list-table table table-bordered">

    
  </table>

  <div class="formatted">
    
<p>表单对象构造后调用的事件方法</p>
  </div>
	<hr>
    
  <a name="QForm__before_validate"></a>

  <h4 class="name method">
    _before_validate()
    <span class="tags">方法</span>
  </h4>
	<p>
	protected void <strong>_before_validate</strong>($data)	</p>
  <table class="list-table table table-bordered">

        
    <tr>
      <td class="param_name">$data</td>
      <td class="param_type">mixed</td>
      <td class="param_desc">要验证的数据</td>
    </tr>
    
    <tr>
      <td class="param_name">{return}</td>
      <td class="param_type"></td>
      <td class="param_desc"></td>
    </tr>
    
  </table>

  <div class="formatted">
    
<p>表单对象验证之前调用的事件方法</p>
  </div>
	<hr>
    
  <a name="QForm__after_validate"></a>

  <h4 class="name method">
    _after_validate()
    <span class="tags">方法</span>
  </h4>
	<p>
	protected void <strong>_after_validate</strong>($data)	</p>
  <table class="list-table table table-bordered">

        
    <tr>
      <td class="param_name">$data</td>
      <td class="param_type">mixed</td>
      <td class="param_desc">要验证的数据</td>
    </tr>
    
    <tr>
      <td class="param_name">{return}</td>
      <td class="param_type"></td>
      <td class="param_desc"></td>
    </tr>
    
  </table>

  <div class="formatted">
    
<p>表单对象验证之后调用的事件方法</p>
  </div>
	<hr>
    
  <a name="QForm__after_validate_failed"></a>

  <h4 class="name method">
    _after_validate_failed()
    <span class="tags">方法</span>
  </h4>
	<p>
	protected void <strong>_after_validate_failed</strong>()	</p>
  <table class="list-table table table-bordered">

    
  </table>

  <div class="formatted">
    
<p>当表单验证失败时调用的事件方法</p>
  </div>
	<hr>
    
  <a name="QForm__after_validate_successed"></a>

  <h4 class="name method">
    _after_validate_successed()
    <span class="tags">方法</span>
  </h4>
	<p>
	protected void <strong>_after_validate_successed</strong>()	</p>
  <table class="list-table table table-bordered">

    
  </table>

  <div class="formatted">
    
<p>当表单验证成功时调用的事件方法</p>
  </div>
	<hr>
                                                                            
</div>


</div>


    </div>

    <!-- /右侧栏 -->
    </div>
	</div>
</body>
</html>
